Skip to content

Use Boost::json in olp-cpp-sdk-authentication#1674

Merged
rustam-gamidov-here merged 2 commits intofeature_boost_jsonfrom
rga/ocmam-443-boost-json-to-auth
Mar 3, 2026
Merged

Use Boost::json in olp-cpp-sdk-authentication#1674
rustam-gamidov-here merged 2 commits intofeature_boost_jsonfrom
rga/ocmam-443-boost-json-to-auth

Conversation

@rustam-gamidov-here
Copy link
Copy Markdown
Collaborator

Migrating from RapidJSON

Relates-To: OCMAM-443

@codecov
Copy link
Copy Markdown

codecov bot commented Mar 2, 2026

Codecov Report

❌ Patch coverage is 78.51240% with 52 lines in your changes missing coverage. Please review.
⚠️ Please upload report for BASE (feature_boost_json@678c8f7). Learn more about missing BASE report.

Files with missing lines Patch % Lines
...dk-authentication/src/AuthenticationClientImpl.cpp 73.68% 23 Missing and 7 partials ⚠️
...k-authentication/src/AuthenticationClientUtils.cpp 75.86% 1 Missing and 6 partials ⚠️
olp-cpp-sdk-authentication/src/BaseResult.cpp 68.75% 1 Missing and 4 partials ⚠️
...p-sdk-authentication/src/ResponseFromJsonBuilder.h 78.95% 1 Missing and 3 partials ⚠️
...pp-sdk-authentication/src/SignInUserResultImpl.cpp 69.23% 0 Missing and 4 partials ⚠️
...p-cpp-sdk-authentication/src/TokenEndpointImpl.cpp 89.47% 1 Missing and 1 partial ⚠️
Additional details and impacted files
@@                  Coverage Diff                  @@
##             feature_boost_json    #1674   +/-   ##
=====================================================
  Coverage                      ?   80.38%           
=====================================================
  Files                         ?      351           
  Lines                         ?    14018           
  Branches                      ?     1518           
=====================================================
  Hits                          ?    11267           
  Misses                        ?     2134           
  Partials                      ?      617           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

@rustam-gamidov-here rustam-gamidov-here force-pushed the rga/ocmam-443-boost-json-to-auth branch 10 times, most recently from a3a9336 to 80cc913 Compare March 2, 2026 14:44
Copy link
Copy Markdown
Contributor

@andrey-kashcheev andrey-kashcheev left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we need to have JSON sources to be included here in auth as well? It's currently in core, but does it work with visibility=hidden?

@rustam-gamidov-here
Copy link
Copy Markdown
Collaborator Author

rustam-gamidov-here commented Mar 3, 2026

Do we need to have JSON sources to be included here in auth as well? It's currently in core, but does it work with visibility=hidden?

Nice catch! Looks like it should be in all projects. Not sure how to verify on CI because in tests we are accessing not exposed classes.
Locally added set (CMAKE_CXX_VISIBILITY_PRESET hidden) to the top-level CMakeLists.txt and got several unresolved external symbols building olp-cpp-sdk-authentication. And no unresolved symbols reported with this magic header added to the authentication project.
Tried on macos clang, because previously unresolved symbols were mainly met on clang builds.

Migrating from RapidJSON

Relates-To: OCMAM-443
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>
Migrating from RapidJSON

Relates-To: OCMAM-443
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>
@rustam-gamidov-here rustam-gamidov-here force-pushed the rga/ocmam-443-boost-json-to-auth branch from e362140 to 787a8ee Compare March 3, 2026 12:17
@rustam-gamidov-here rustam-gamidov-here merged commit 4b553db into feature_boost_json Mar 3, 2026
24 checks passed
@rustam-gamidov-here rustam-gamidov-here deleted the rga/ocmam-443-boost-json-to-auth branch March 3, 2026 12:29
rustam-gamidov-here added a commit that referenced this pull request Mar 30, 2026
Migrating from RapidJSON

Relates-To: OCMAM-443
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>
rustam-gamidov-here added a commit that referenced this pull request Mar 31, 2026
Migrating from RapidJSON

Relates-To: OCMAM-443
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>
rustam-gamidov-here added a commit that referenced this pull request Apr 1, 2026
Migrating from RapidJSON

Relates-To: OCMAM-443
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>
rustam-gamidov-here added a commit that referenced this pull request Apr 14, 2026
* CI: Add build with OLP_SDK_NO_EXCEPTION=ON (#1661)

To catch issues in this kind of build earlier

Relates-To: OCMAM-442

Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* Integrate Boost.Json patching 1.82 for no exception (#1662)

Patch boost::json 1.82 with BOOST_NO_EXCEPTIONS
Is is solved in boost::json 1.83 but we preferred to stay at 1.82

Relates-To: OCMAM-442

Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* Refactor PartitionsSaxHandler to use boost::json (#1670)

Previously it was based on rapidjson
The tests are adjusted accordingly.

Relates-To: OCMAM-448
Signed-off-by: Alexander Sopov <ext-alexander.sopov@here.com>
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* CI: build with hidden symbols using Clang (#1675)

Good to be able to do this. No tests as not exposed classes are
accessed in tests.
Examples: export functions from libs to utilize in the common binary

Make boost::json header only in the read lib
Otherwise there are unresolved external symbols when built with
visibility=hidden

Relates-To: MINOR
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* Use Boost::json in olp-cpp-sdk-authentication (#1674)

Migrating from RapidJSON

Relates-To: OCMAM-443
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* Build with OLP_SDK_NO_EXCEPTION=ON using clang (#1676)

It appeared that Clang and GCC complains on different lines
at least in case of Boost  codebase

Relates-To: MINOR

Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* Boost includes to private section of auth lib (#1678)

Migrating from RapidJSON

Relates-To: OCMAM-443

Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* Use Boost::json in olp-cpp-sdk-dataservice-write (#1681)

Migrating from RapidJSON
Copy json implementation wrappers to write lib

This allows to keep other libs untouched until fully migrated to the
boost::json and remove write lib dependency from public json wrappers.
Alternative solutions tried are:
 - add boost json wrappers to the same files in the core but to
   additional namespace - changes in core, json still exposed
 - move boost json wrappers from core to internal for the repository
   include location and add it to all DataSDK projects - huge change

Relates-To: OCMAM-445
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* Use Boost::json in olp-cpp-sdk-dataservice-read (#1684)

Migrating from RapidJSON
Copy json implementation wrappers to read lib

This allows to keep other libs untouched until fully migrated to the
boost::json and remove read lib dependency from public json wrappers.
Alternative solutions tried are:
 - add boost json wrappers to the same files in the core but to
   additional namespace - changes in core, json still exposed
 - move boost json wrappers from core to internal for the repository
   include location and add it to all DataSDK projects - huge change

Relates-To: OCMAM-444
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* Use Boost::json in olp-cpp-sdk-core (#1685)

Migrating from RapidJSON
Json wrappers has been moved and not exposed anymore
Use Boost::json in mock-server-client
Use boost::json in HarCaptureAdapter

Relates-To: OCMAM-446
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* Exclude RapidJSON from build

Migrating to boost::json

Relates-To: OCMAM-447
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

* Skip clang no exception build

Boost date_time has no 'no_exception' setup and clang is compiling
that code even if it's not used. GCC is OK

Relates-To: OCMAM-447
Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>

---------

Signed-off-by: Rustam Gamidov <ext-rustam.gamidov@here.com>
Signed-off-by: Alexander Sopov <ext-alexander.sopov@here.com>
Co-authored-by: asopov-here <ext-alexander.sopov@here.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants